Lombok ile Entity Sınıfı Oluşturma (Spring Boot & JPA Rehberi)

Bu rehberde Lombok ile entity sınıfı oluşturma konusunu detaylı şekilde ele alıyoruz. Spring Boot + JPA projelerinde Lombok kullanarak boilerplate kodu azaltmayı, kod okunabilirliğini artırmayı ve bakım maliyetini düşürmeyi öğreneceksiniz.

Kısa Özet: Lombok anotasyonları sayesinde getter, setter, constructor ve toString gibi tekrar eden kodları yazmadan daha temiz entity sınıfları oluşturabilirsiniz.

Entity Sınıfı Nedir?

Entity sınıfları, veritabanı tablolarını Java nesneleri olarak temsil eder. Spring Boot projelerinde genellikle JPA (Java Persistence API) ile kullanılır.

Örneğin bir Student tablosu için aşağıdaki alanları içeren bir entity oluşturabiliriz:

  • studentId
  • firstName
  • lastName
  • address
  • phoneNumber

Bu sınıflarda çoğu zaman getter, setter, constructor gibi tekrar eden boilerplate kodlar bulunur.

Lombok Kütüphanesi Nedir?

Lombok, Java projelerinde tekrar eden kodları otomatik üretmeye yarayan bir kütüphanedir.

Aşağıdaki anotasyonlar Lombok sayesinde otomatik oluşturulur:

  • @Getter
  • @Setter
  • @ToString
  • @EqualsAndHashCode
  • @NoArgsConstructor
  • @AllArgsConstructor

Bu sayede kodunuz:

  • daha kısa
  • daha okunabilir
  • daha az hataya açık
hale gelir.

Lombok Kullanmadan Entity Sınıfı



public class Student {

  private Long studentId;
  private String firstName;
  private String lastName;
  private String address;
  private String phoneNumber;

  public Student(){}

  public Student(Long studentId,String firstName,
                 String lastName,String address,
                 String phoneNumber){

      this.studentId = studentId;
      this.firstName = firstName;
      this.lastName = lastName;
      this.address = address;
      this.phoneNumber = phoneNumber;
  }

}

Görüldüğü gibi basit bir entity için bile oldukça fazla kod yazılması gerekiyor.

Lombok ile Entity Sınıfı

Lombok Maven Bağımlılığı



<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>

Lombok Kullanarak Student Entity



@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Student {

 private Long studentId;
 private String firstName;
 private String lastName;
 private String address;
 private String phoneNumber;

}

Bu şekilde Lombok kullanarak çok daha kısa ve temiz bir entity sınıfı elde edebilirsiniz.

JPA + Lombok Best Practices

Önemli: Entity sınıflarında genellikle @Data anotasyonu önerilmez. Çünkü equals, hashCode ve toString metotları JPA ilişkilerinde performans ve döngü sorunlarına neden olabilir.

JPA Uyumlu Lombok Kullanımı



@Entity
@Table(name="students")

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(of = "studentNumber")

public class Student {

 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 private Long id;

 @Column(nullable=false,unique=true)
 private String studentNumber;

 private String firstName;
 private String lastName;
 private String address;
 private String phoneNumber;

}

Önerilen Pratikler

  • Entity içinde @Data kullanmaktan kaçının
  • equals/hashCode için iş anahtarı kullanın
  • Entity yerine API katmanında DTO kullanın
  • Lazy ilişkilerde toString döngülerine dikkat edin

Sık Sorulan Sorular

Lombok performansı etkiler mi?

Hayır. Lombok derleme zamanında kod üretir. Runtime performansına etkisi yoktur.

Entity içinde @Builder kullanılır mı?

Evet kullanılabilir ancak JPA için mutlaka parametresiz constructor bulunmalıdır.

Entity için en güvenli Lombok anotasyonları hangileri?

Genellikle aşağıdaki kombinasyon önerilir:



@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor

Sonuç

Lombok ile entity sınıfı oluşturmak, Spring Boot ve JPA projelerinde geliştirme hızını artırır ve gereksiz boilerplate kodu ortadan kaldırır.

Ancak JPA ilişkileri nedeniyle anotasyonları bilinçli kullanmak önemlidir. Doğru kullanıldığında Lombok modern Java projelerinde oldukça güçlü bir araçtır.

Etiketler: lombok entity, spring boot lombok, lombok jpa entity, java lombok

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Blog where the most up-to-date software is followed. (En güncel yazılımların takip edildiği blog sitesi)

Spring Boot ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *